<?php
/**
 * 
 * modelo de SC_CompaniaHistorico
 * 
 */
class CompaniaHistorico extends Model{
     
	   private $_nameTable =  "SC_CompaniaHistorico";

           public function  __construct()
           {
              parent::Model();
	          $this->load->database();
           }
           
           public function loadCompaniaHistorico($start = false, $offset = false, $sortname = false, $sortorder = false)
           {
           	
                if($offset != false)
		              $this->db->limit($offset, $start);

	            if($sortname != false && $sortorder != false)
		              $this->db->order_by($sortname, $sortorder);

		         $result = $this->db->get_where($this->_nameTable);

	             return $this->GetArrayFromQueryResult($result);
           }
           
           
          
           public function loadCompaniaHistoricoByArray($array)
           {
                   $result = $this->db->get_where($this->_nameTable, $array);
 
	               return $this->GetArrayFromQueryResult($result);        
           }

           public function loadCompaniaHistoricoByArraykpis($select = FALSE, $fDesde =false, $fHasta =FALSE)
           {
                   $this->db->where('FechaSysCompania >', "$fDesde");
                   $this->db->where('FechaSysCompania <', "$fHasta");
                   
                   if($select):
                      $this->db->where('IdUsuario', $select); 
                   endif;
                   
                   $result = $this->db->get_where($this->_nameTable);
 
	               return $this->GetArrayFromQueryResult($result);        
           }
           
           
           public function loadComapniaHistoricoById($id)
           {
         	   $qresult = $this->db->get_where($this->_nameTable, array('IdCompania' => $id));

		       if ($qresult->num_rows() == 0)
		       {
			     return false;
		       }

		       return new SC_CompaniaHistorico($qresult->row());
           }

          public function GetArrayFromQueryResult($result)
	      {
		    if ($result->num_rows() == 0)
			       return false;

		    $estatus_arr = array();

	             foreach ($result->result() as $record) {
			      $estatus_arr[] = new SC_CompaniaHistorico($record);
		     }

                     return $estatus_arr;
           }

           public function CompaniaHistoricoAdd($data)
           {
               if ($this->db->insert($this->_nameTable,$data)) {
           	       return true;
                }

               return false;
           }
           
           public function loadCompaniasHistoricoPorSemanas($filtroSemana = array(), $count = false)
           {
				$this->db->where('FechaSysCompania >=',$filtroSemana['inicial']);
				$this->db->where('FechaSysCompania <=',$filtroSemana['final']);
				
				$result = $this->db->get($this->_nameTable);
				
				if($count != false){
					return $result->num_rows();
				}
				return $this->GetArrayFromQueryResult($result);
           }
           
			function LoadCompaniaHistoricoById($id_compania) 
			{
				$qresult = $this->db->get_where($this->_nameTable, array('IdCompania' => $id_compania));		if ($qresult->num_rows() == 0)
				{
					return false;
				}	
		
					return new SC_CompaniaHistorico($qresult->row());
			}
                              
       public function historicoPorSemanas($filtroSemana = array(), $count = false, $idServicio = FALSE) {
        $this->db->where('FechaHistorico >=', $filtroSemana['inicial']);
        $this->db->where('FechaHistorico <=', $filtroSemana['final']);

        if ($idServicio != FALSE) {
            $this->db->where('IdServicio', $idServicio);
        }


        $result = $this->db->get($this->_nameTable);

        if ($count != false) {
            return $result->num_rows();
        }
        return $this->GetArrayFromQueryResult($result);
    }

}


class SC_CompaniaHistorico{

   private $_idRegistro = 0;
   private $_nombreCompania = "";
   private $_idServicio = 0;
   private $_idJurisdiccion = 0;
   private $_fechaUsrCompania = "";
   private $_fechaSysCompania = "";
   private $_idUsuario = 0;
   private $_idUsuarioHistorico = "";
   private $_idProvincia = 0;
   private $_telefono1Compania = "";
   private $_telefono2Compania = "";
   private $_emailCompania = "";
   private $_estadoCompania = 0;
   private $_contacto = "";
   private $_fechaHistorico = "";
   private $_idCompania = 0;
   private $_cServicios = "";
   
  public function  __construct($ojt)
  {
      $this->setIdRegistro($ojt->IdRegistro);
      $this->setNombreCompania($ojt->NombreCompania);
      $this->setIdServicio($ojt->IdServicio);
      $this->setIdJurisdiccion($ojt->IdJurisdiccion);
      $this->setFechaUsrCompania($ojt->FechaUsrCompania);
      $this->setFechaSysCompania($ojt->FechaSysCompania);
      $this->setIdUsuario($ojt->IdUsuario);
      $this->setIdUsuarioHistoricoa($ojt->IdUsuarioHistorico);
      $this->setIdProvincia($ojt->IdProvincia);
      $this->setTelefono1Compania($ojt->Telefono1Compania);
      $this->setTelefono2Compania($ojt->Telefono2Compania);
      $this->setEmailCompania($ojt->EmailCompania);
      $this->setEstadoCompania($ojt->EstadoCompania);
      $this->setContacto($ojt->Contacto);
      $this->setFechaHistorico($ojt->FechaHistorico);
      $this->setIdCompania($ojt->IdCompania);
      $this->setClasificacionS($ojt->clasificacion_servicios);

  }

  public function getIdRegistro()
  {
      return $this->_idRegistro;
  }

  public function setIdRegistro($ojt)
  {
      $this->_idRegistro = $ojt;
  }

  public function getNombreCompania()
  {
      return $this->_nombreCompania;
  }

  public function setNombreCompania($ojt)
  {
      $this->_nombreCompania = $ojt;
  }

  public function getIdServicio()
  {
      return $this->_idServicio;
  }

  public function setIdServicio($ojt)
  {
      $this->_idServicio= $ojt;
  }

  public function getIdJurisdiccion()
  {
      return $this->_idJurisdiccion;
  }

  public function setIdJurisdiccion($ojt)
  {
      $this->_idJurisdiccion= $ojt;
  }

  public function getFechaUsrCompania()
  {
      return $this->_fechaUsrCompania;
  }

  public function setFechaUsrCompania($ojt)
  {
      $this->_fechaUsrCompania = $ojt;
  }

  public function getFechaSysCompania()
  {
      return $this->_fechaSysCompania;
  }

  public function setFechaSysCompania($ojt)
  {
      $this->_fechaSysCompania = $ojt;
  }

  public function getIdUsuario()
  {
      return $this->_idUsuario;
  }

  public function setIdUsuario($ojt)
  {
      $this->_idUsuario = $ojt;
  }

  public function getIdUsuarioHistoricoa()
  {
      return $this->_idUsuarioHistorico;
  }

  public function setIdUsuarioHistoricoa($ojt)
  {
      $this->_idUsuarioHistorico = $ojt;
  }

  public function getIdProvincia()
  {
      return $this->_idProvincia;
  }

  public function setIdProvincia($ojt)
  {
      $this->_idProvincia = $ojt;
  }

  public function getTelefono1Compania()
  {
      return $this->_telefono1Compania;
  }

  public function setTelefono1Compania($ojt)
  {
      $this->_telefono1Compania = $ojt;
  }

  public function getTelefono2Compania()
  {
      return $this->_telefono2Compania;
  }

  public function setTelefono2Compania($ojt)
  {
      $this->_telefono2Compania = $ojt;
  }

  public function getEmailCompania()
  {
      return $this->_emailCompania;
  }

  public function setEmailCompania($ojt)
  {
      $this->_emailCompania = $ojt;
  }

  public function getEstadoCompania()
  {
      return $this->_estadoCompania;
  }

  public function setEstadoCompania($ojt)
  {
      $this->_estadoCompania = $ojt;
  }

  public function getContacto()
  {
      return $this->_contacto;
  }

  public function setContacto($ojt)
  {
      $this->_contacto = $ojt;
  }

  public function getFechaHistorico()
  {
      return $this->_fechaHistorico;
  }

  public function setFechaHistorico($ojt)
  {
      $this->_fechaHistorico = $ojt;
  }

  public function getIdCompania()
  {
      return $this->_idCompania;
  }

  public function setIdCompania($ojt)
  {
      $this->_idCompania = $ojt;
  }
  
  public function setClasificacionS($ojt)
  {
  	$this->_cServicios = $ojt;
  }
  
  public function getClasificacionS()
  {
  	 return $this->_cServicios;
  }
  
}